package pe.com.ztaxi.taxis.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.fasterxml.jackson.annotation.JsonIgnore;

@Entity
@Table
//@Inheritance(strategy = InheritanceType.JOINED)
public class Usuario{
		
	@Id
	@Column(nullable = false)
	private String login;
	
	@JsonIgnore 
	@Column(nullable = false)
	private String password;
	
	@Column(nullable = false)
	private Date fechaRegistro;
	
	@Column(nullable = false)
	private boolean flagActivo;

	@JoinColumn(name = "empresa", referencedColumnName = "codEmpresa")
	@ManyToOne(fetch = FetchType.EAGER)
	private Empresa empresa;
		
	@JoinColumn(name = "perfil")
	@ManyToOne(optional = false, fetch = FetchType.EAGER)
	private Perfil perfil;
	
	public Empresa getEmpresa() {
		return empresa;
	}

	public void setEmpresa(Empresa empresa) {
		this.empresa = empresa;
	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public Date getFechaRegistro() {
		return fechaRegistro;
	}

	public void setFechaRegistro(Date fechaRegistro) {
		this.fechaRegistro = fechaRegistro;
	}

	public boolean isFlagActivo() {
		return flagActivo;
	}

	public void setFlagActivo(boolean flagActivo) {
		this.flagActivo = flagActivo;
	}

	public Perfil getPerfil() {
		return perfil;
	}

	public void setPerfil(Perfil perfil) {
		this.perfil = perfil;
	}	
}
